<?php

class Apartment extends Eloquent {
    
    protected $guarded = ['id'];
    protected $fillable = ['fecha','lugar','texto','estado'];
    public $timestamps = false;
    
    public function images(){
        // Ojo: en este caso hay que setear el nombre de la pivot 'imageapa_apartment'
        // x default laravel ordena alfabeticamente, ej: apartment_imageapa, 'a' < 'i'
        return $this->belongsToMany('Imageapa', 'imageapa_apartment')->withPivot('position');
    }
    
    public function imagesOrdered(){
        return $this->images()->orderBy('position');
    }
    /* convierte a un Carbon Object */
    public function getDates() {
        return ['fecha'];
    }
    /* formato de fecha */
    public function fecha_formatted(){
        // Para formatear la fecha en español
        setlocale(LC_TIME, 'Spanish');

        return ucfirst($this->fecha->formatLocalized('%B %Y'));
    }
    
    public static function validate($input) {
        $rules = [
            'lugar' => 'required|max:150',
            'texto' => 'required',
            'mes' => 'required|numeric|between:1,12',
            'anio' => 'required|numeric|between:2015,2035',
        ];
        return Validator::make($input, $rules);
    }
    
    // que este ACTIVO estado = 1
    public function scopeActive($query) {
        return $query->where('estado', 1);
    }
    
    public static function scopeGetFirst($query){
        return $query->active()->orderBy('fecha', 'desc')->take(1)->first();
    }

}